1. Field of the Invention
The present invention relates to protocols for interconnecting networks using connection oriented protocols, such as asynchronous transfer mode (ATM), with networks using connectionless protocols, such as Ethernet or Token Ring; and more particularly to improving performance of such systems for multicast and broadcast messages.
2. Description of Related Art
ATM is an emerging network standard based on a connection oriented network protocol. In order to transmit data between users of the ATM network, a connection is first set up between the users, and then a point to point transmission of the data is accomplished from the source through an ATM switch to the destination. When ATM switches are used to provide data connectivity for personal computers and other network devices, a number of problems occur when running networking software such as Novell IPX, TCP/IP or Xerox XNS protocols existing on the installed network PCs and servers. These network layer protocols are designed to run on a connectionless type local area network, such as Ethernet, Token Ring, or FDDI networks where the packets are placed on the network fabric and heard by all other end stations on the LAN. To provide connectivity among these network types, vendors of ATM equipment have agreed upon a set of conventions and standards called LAN emulation. A standards body which manages the ATM specification, called ATM Forum, has published a document entitled LAN Emulation Over ATM Specificationxe2x80x94Version 1.0, which is incorporated by reference herein.
One primary problem that LAN emulation addresses is that most network software, based on network layer protocols, such as Netware IPX, Xerox XNS, TCP/IP, AppleTalk, and OSI, uses an end to end path, medium access control (MAC) address identification technique based on broadcast or multicast packets. When an end station A wants to communicate with another end station B, the first end station A issues a multicast packet to the network which is heard by all other end stations in the same multicast domain. Based on some higher layer information in the packet, such as user name or server name, the end station B recognizes that it is the one that should respond and does so with a unicast packet to the original end station A. This works effectively in Ethernet, Token Ring, and FDDI networks, where packets are placed on a network fabric and are heard by all other end stations. This is analogous to a person, Sarah, in an open room fill of other people yelling out xe2x80x9cThis is Sarah, is Joe here?xe2x80x9d, and having Joe hear that call and answer back, xe2x80x9cYes, Sarah, I""m here.xe2x80x9d Then the conversation can occur between the two at that point.
However, an ATM environment does not work in the same fashion. In this environment, packets are sent only to a single destination at the MAC layer. No other device in the network has access to the data except the recipient. The originator of the data packet, end station A, must know the ATM path address of the recipient end station B, prior to sending the packet. This is analogous to a person, Sarah, being in a closed room with a phone and wanting to talk to Joe. Sarah must know Joe""s phone number and dial it to talk to Joe. The problem with this connection oriented method is that in most existing network environments, the installed end stations are running software which is not capable of knowing the address in advance of each other end station it might want to communicate with. The LAN emulation standard published by the ATM Forum addresses this problem by providing a higher layer set of services that emulate the behavior of a shared medium local area network, such as Ethernet. These services include a LAN emulation configuration server (LECS), a LAN emulation server (LES), and a broadcast and unknown server (BUS). The LECS contains a list of all the ports on the edge devices (network intermediate system devices that connect end systems or non-ATM intermediate system devices to the ATM network fabric) on the network. For each port on each edge device, the LECS identifies the multicast domain (also referred to as a virtual LAN), of which devices connected to that port are members. In addition, it identifies the LES and BUS servers that might be used for each port on the edge device. When an edge device is initialized or reset, it queries the LECS for this information.
The LAN emulation server LES is used by the edge device connecting a particular end station to the ATM network. When it is initialized, the edge device queries the LECS to find out which LES to connect to, and then whenever it gets a unicast packet from the end station, the edge device queries the LES to find out the ATM path address of the destination in the system. That address is then used to route the packet through the ATM switches.
The broadcast and unknown server BUS is used when an edge device receives a broadcast or a multicast packet from an end station, or when it receives a packet with a destination address that is not identified by the LES. When such a packet is received, the edge device sends the packet to the BUS. The BUS then identifies all other end stations which are configured as part of the same multicast domain, and sends the packet to all end systems that are part of the same multicast domain. Using the same analogy as above, Sarah calls BUS, saving she wants to talk to Joe in Santa Clara. Calif., and then BUS dials every phone number in Santa Clara leaving a message that Sarah wants to talk to Joe and leaving her phone number. Joe, along with everyone else, gets the message. and then calls Sarah back and has a conversation with her.
The approach to broadcast and multicast messages adopted by the LAN emulation standard for ATM helps in forwarding multicast messages to all stations, and relies upon filtering at the end stations as is done in existing LANs. However, a relatively large number of end stations do not need to receive the broadcast or multicast messages. Particularly, some end stations within a single multicast domain may not be using the same network level software, which generated the multicast message. Thus, it is desirable to provide a service which can intercept these messages, and forward them directly to their destination, instead of broadcasting them to every station.
The present invention provides an enhanced BUS server in the ATM architecture, which works by learning network layer protocol information and tying that information to MAC layer address tables to avoid sending multicast and broadcast packets to end systems that do not have the protocol software appropriate to respond to the packet. According to the present invention, the system configures protocol information about every end system attached to the network, and filters packets based on this information at the BUS server level.
Thus, the present invention can be characterized as a method for managing transfer of multiple destination packets received at edge devices on a connection oriented network, where the connection oriented network provides emulation of one or more variant network protocols for systems coupled to the edge devices. The method includes in one example maintaining status information for each port on edge devices on the connection oriented network, which provides an indication of network protocols not in use by systems accessible through the respective ports. Multiple destination packets received at an incoming port on an edge device are sent. if the control engine is not local to the edge device, via the connection oriented network to a server on the connection oriented network or to a server through one of its ports. The server determines the network protocol for which the multiple destination packet is intended. The server transmits via the connection oriented network the multiple destination packet to ports of edge devices, other than the incoming port, and other than ports for which the status information indicates that the determined network protocol is not in use by systems accessible through the port.
The status information according to one aspect is learned by monitoring activity at the edge devices on the respective ports; and if the server is apart from the edge device, then the activity is reported by the edge device to the server. One approach according to the present invention for generating status information for the particular ports on the edge devices includes assigning at the edge devices one of a plurality of states for each of a predetermined set of protocols for each port on the edge device, in response to traffic using the protocols in the set on the respective ports. The states include a first state indicating that the respective protocol may be in use at the port, a second state indicating that the respective protocol has not been recently used at the port, and a third, transitional state entered on occasion from the first state, during which a timer is run to determine whether the respective protocol is active on the particular port.
According this paradigm, the third state is entered from the first state occasionally, either after a time out interval, or periodically, such as once a week. The second state is entered from the third state when a time out interval expires between actions on the port involving the respective protocol, and the first state is entered from the third state if an action involving the respective protocol occurs on the port before expiration of the second time out interval. This state information is sent to the server by forwarding status updates to the server when the state for a particular port changes from the third state to the second state. or when the state for a particular port changes from the second state to the first state.
According to yet another aspect of the invention, the status information is stored in the sever, in a table indexed by a protocol identifier. When a multicast packet is sent from the edge device to the server, a protocol identifier is carried to the server. The server determines the protocol identifier, and accesses the status information using the protocol identifier as an index.
According to yet another aspect of the invention, there are a plurality of emulated networks within the system using one or more network protocols. The status information for the respective ports stored in the server includes an indication associating an emulated network with the respective ports. The process according to this aspect of the invention includes determining the emulated network for which the multiple destination packet is intended, and transmitting the multiple destination packet only to ports associated with a determined emulated network.
Accordingly, the present invention provides a technique for limiting needless broadcasting of multiple destination packets in a connection oriented network, such as ATM, providing LAN emulation. In heterogeneous network protocol environments, the present invention significantly improves network utilization by limiting multicast traffic across the ATM backbone only to members of a virtual LAN that are using the protocol specified in the multicast and not to those that are not using the protocol.
Other aspects and advantages of the present invention can be seen upon review of the figures, the detailed description, and the claims which follow.